#!/usr/bin/evn python
# -*- coding: utf-8 -*-

from fastapi import FastAPI
"""
❑title：表示整个API文档的标题和文档网站标题，默认为FastAPI。
❑description：表示该API文档描述的补充说明，它支持使用Markdown格式来编写。
❑version：表示API文档版本号信息。
❑openapi_prefix：配置访问openapi_json.json文件路径的前缀，默认为空字符串。
❑swagger_ui_oauth2_redirect_url：配置在swagger_ui中，使用OAuth 2进行身份认证时的授权URL重定向地址。
❑swagger_ui_init_oauth：自定义OAuth认证信息配置，默认为None。
❑docs_url：自定义swagger_ui交互式文档访问请求地址，默认为docs。
❑redoc_url：自定义redoc_ui交互式文档访问请求地址，默认为redoc。
❑openapi_url：配置访问openapi_json.json文件路径。
❑terms_of_service：团队服务条款的URL。如果提供，则该值必须是一个URL。该参数为非必要参数。
❑deprecated：是否全局标注所有的API为废弃标识，默认为None。
❑contact：配置公开的API服务条款URL信息，主要字段信息如下。
    ❍name：联系人/组织的识别名称。
    ❍url：指向联系信息的URL，必须采用URL的格式。
    ❍email：联系人/组织的电子邮件地址，必须采用电子邮件地址的格式。
❑license_info：配置公开API的许可信息。它可以包含多个字段。
    ❍name：API的许可证名称。
    ❍url：指向联系信息的URL，必须采用URL的格式。
❑openapi_tags：默认的接口分组列表信息，可以定义相关API的分组Tag名称。
❑servers：配置请求API使用的host地址，通过这个配置可以划分多个环境URL。

"""
app = FastAPI(
    title="文档的标题",
    description='关于该API文档一些描述信息补充说明',
    version='v1.0.0',
    openapi_prefix='',
    swagger_ui_oauth2_redirect_url="/docs/oauth2-redirect",
    swagger_ui_init_oauth=None,
    docs_url='/docs',
    redoc_url='/redoc',
    openapi_url="/openapi/openapi_json.json",
    terms_of_service="https://terms/团队的官网网站/",
    deprecated=True,
    contact={
        "name": "邮件接收者信息",
        "url": "https://xxx.cc",
        "email": "308711822@qq.com",
    },
    license_info={
        "name": "版权信息说明 License v3.0",
        "url": "https://xxxxxxx.com",
    },
    openapi_tags=[
        {
            "name": "接口分组",
            "description": "接口分组信息说明",
        },
    ],
    # 配置服务请求地址相关的参数信息
    servers=[
        {"url": "/", "description": "本地调试环境"},
        {"url": "https://xx.xx.com", "description": "线上测试环境"},
        {"url": "https://xx2.xx2.com", "description": "线上生产环境"},
    ]
)

@app.get(path="/index")
async def index():
    return {"index": "index"}

if __name__ == "__main__":
    import uvicorn
    import os

    app_modeel_name = os.path.basename(__file__).replace(".py", "")
    print(app_modeel_name)
    uvicorn.run(f"{app_modeel_name}:app", host='127.0.0.1', reload=True)
